﻿using Abp.Application.Services.Dto;
using ARchGL.Platform.Dto;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace ARchGL.Platform.Dtos
{
    /// <summary>
    /// 检查信息 InputModel
    /// </summary>
    public class SecurityChecksInput : EntityDto<Guid>
    {
        /// <summary>
        /// 项目标识
        /// </summary>
        public Guid ProjectId { get; set; }
        /// <summary>
        /// 检查内容
        /// </summary>
        public string Content { get; set; }
        /// <summary>
        /// 检查结果
        /// </summary>
        public string Result { get; set; }
        /// <summary>
        /// 检查类型，获取检查项的根数据
        /// </summary>
        public Guid CheckItemId { get; set; }
        /// <summary>
        /// 执行检查日期
        /// </summary>
        public DateTime CheckDate { get; set; }
        /// <summary>
        /// 状态：1整改中/书面整改、2已整改/待复查、3已完成/通过、4已撤销
        /// </summary>
        public EnumCheckAndFeedbackStatus Status { get; set; }

        /// <summary>
        /// 执行检查人标识集合
        /// </summary>
        public List<Guid> CheckUsersArray { get; set; }
        /// <summary>
        /// 抄送人标识集合
        /// </summary>
        public List<Guid> CCUsersArray { get; set; }
        /// <summary>
        /// 通知人/整改人 标识集合
        /// </summary>
        public List<Guid> NotifyUsersArray { get; set; }
        /// <summary>
        /// 检查性质标识
        /// </summary>
        public List<Guid> SecurityChecksPropertysArray { get; set; }
        /// <summary>
        /// 附件集合
        /// </summary>
        public List<AttachmentsInput> AttachmentsArray { get; set; }
        /// <summary>
        /// 视图标识集合
        /// </summary>
        public List<Guid> ProjectViewPortsArray { get; set; }

        /// <summary>
        /// 整改回复/复查意见
        /// </summary>
        public SecurityCheckAndFeedbacksInput SecurityCheckAndFeedbacks { get; set; }

        #region 整改要求

        /// <summary>
        /// 整改要求（语言描述整改内容）
        /// </summary>
        public string CorrectContent { get; set; }
        /// <summary>
        /// 整改完成日期（截止日期）
        /// </summary>
        public DateTime? CorrectDate { get; set; }

        #endregion
    }
}
